Skip to content

gh-136728: Refactor build.yml CI config and multissltests.py#143940

Draft
hugovk wants to merge 23 commits intopython:mainfrom
hugovk:3.15-refactor-ssl-tests
Draft

gh-136728: Refactor build.yml CI config and multissltests.py#143940
hugovk wants to merge 23 commits intopython:mainfrom
hugovk:3.15-refactor-ssl-tests

Conversation

@hugovk
Copy link
Member

@hugovk hugovk commented Jan 16, 2026

Continuation of #136729.

Original description:


Notes

Please see #136728. Changes to build.yml are directly adapted from @hugovk's proof-of-concept here.

Testing

  • this PR's CI
  • PR CI on my fork.

Comment on lines +312 to +317
CMD=(./configure CFLAGS="-fdiagnostics-format=json" --config-cache --enable-slower-safety --with-pydebug --with-openssl="$SSL_DIR")
if [ "${{ matrix.ssl }}" = "openssl" ]; then
"${CMD[@]}"
else
"${CMD[@]}" --with-builtin-hashlib-hashes=blake2 --with-ssl-default-suites=openssl
fi
Copy link
Member

@webknjaz webknjaz Jan 16, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
CMD=(./configure CFLAGS="-fdiagnostics-format=json" --config-cache --enable-slower-safety --with-pydebug --with-openssl="$SSL_DIR")
if [ "${{ matrix.ssl }}" = "openssl" ]; then
"${CMD[@]}"
else
"${CMD[@]}" --with-builtin-hashlib-hashes=blake2 --with-ssl-default-suites=openssl
fi
./configure
CFLAGS="-fdiagnostics-format=json"
--config-cache
--enable-slower-safety
--with-pydebug
--with-openssl="$SSL_DIR"
${CONFIGURE_TRAILING_ARGS}

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I prefer the if/else approach. I do not like the notion of 'trailing' args.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Then the steps would need to be separate so the logs are usable/inspectable and it's surfaced.


@property
@abstractmethod
def library(self=None):
Copy link
Member

@picnixz picnixz Jan 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So as I said previously, we should just have annotated properties. It will complain at runtime if we are missing one.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please could you make GH suggestions here, or a PR to my branch?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am sorry I am on mobile only (I am travelling) so I cannot do it easily :(

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No rush, it can wait!

Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
@ned-deily
Copy link
Member

There was a new round of OpenSSL updates on 2026-01-27.

@hugovk
Copy link
Member Author

hugovk commented Feb 6, 2026

I've opened #144551 to track updates to the January 2026 OpenSSL releases.

@hugovk
Copy link
Member Author

hugovk commented Feb 13, 2026

Bumped patch versions following #144794.

- name: Install OpenSSL
if: steps.cache-openssl.outputs.cache-hit != 'true'
run: python3 Tools/ssl/multissltests.py --steps=library --base-directory "$MULTISSL_DIR" --openssl "$OPENSSL_VER" --system Linux
run: python3 Tools/ssl/multissltests.py --steps=library --base-directory "$MULTISSL_DIR" --ssl openssl --ssl-versions "$OPENSSL_VER" --system Linux
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think a better UX would be something like

Suggested change
run: python3 Tools/ssl/multissltests.py --steps=library --base-directory "$MULTISSL_DIR" --ssl openssl --ssl-versions "$OPENSSL_VER" --system Linux
run: python3 Tools/ssl/multissltests.py --steps=library --base-directory "$MULTISSL_DIR" --ssl-targets='openssl:${OPENSSL_VER}" --system Linux

since the project and its version are coupled (maybe use == instead of :, I suppose)

--with-builtin-hashlib-hashes=blake2 \
--with-ssl-default-suites=openssl
CMD=(./configure CFLAGS="-fdiagnostics-format=json" --config-cache --enable-slower-safety --with-pydebug --with-openssl="$SSL_DIR")
if [ "${{ matrix.ssl }}" = "openssl" ]; then
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remember that interpolation in GHA is dangerous and Zizmor will be unhappy — such things must go into env vars.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, Zizmor was happy with this: https://github.com/python/cpython/actions/runs/22004982988/job/63586538110?pr=143940#step:3:151

Perhaps this is a feature request for Zizmor?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

infra CI, GitHub Actions, buildbots, Dependabot, etc. skip news

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

Comments